package ar.com.unlp.fi.lrs.domain;

import javax.persistence.Transient;

import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;


/**
 * 
 * https://github.com/adlnet/xAPI-Spec/blob/master/xAPI.md#object
 *
 */

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType")
@JsonSubTypes({ @JsonSubTypes.Type(value = Agent.class, name = "AGENT"),
@JsonSubTypes.Type(value = Group.class, name = "GROUP"),
@JsonSubTypes.Type(value = Activity.class, name = "ACTIVITY"),
@JsonSubTypes.Type(value = Statement.class, name = "STATEMENT")
})

public interface StatementObject {

	public String AGENT="AGENT";
	public String GROUP= "GROUP";
	public String ACTIVITY = "ACTIVITY";
	public String STATEMENT="STATEMENT";
	
	@Transient
	public String getObjectStatemetnType();
	
	public long getId();
	
	public void setId(long id);
	
}
